package mirrormonkey.rpc.tools.singlecall.specs;

import mirrormonkey.framework.annotations.IdentityAware;
import mirrormonkey.rpc.RpcSpecification;
import mirrormonkey.rpc.annotations.RpcTarget;
import mirrormonkey.rpc.tools.singlecall.entities.RotatableBox;

import com.jme3.math.ColorRGBA;
import com.jme3.math.Quaternion;
import com.jme3.math.Vector3f;

public interface Rotatable extends RpcSpecification {

	@RpcTarget(responseTimeout = 1f, reliable = true)
	public void setRotation(Quaternion rot);

	@RpcTarget(responseTimeout = 1f, reliable = true)
	public void setNullObject(Object shouldBeNull);

	@RpcTarget(responseTimeout = 1f, reliable = false)
	public void unreliableNullCall(Object shouldBeNull);

	@RpcTarget(responseTimeout = 1f, reliable = true)
	public void idAwareCall(@IdentityAware RotatableBox box);

	@RpcTarget(responseTimeout = 1f, reliable = true)
	public void interfaceBasedIdAwareCall(@IdentityAware Rotatable box);

	@RpcTarget(responseTimeout = 1f, reliable = true)
	void setLoadParams(ColorRGBA color, float scale, Vector3f localTranslation);

}
